package app.modelo;

import java.util.Hashtable;
import java.util.Vector;

import javax.naming.InitialContext;

import utils.ArticuloADespacharXML;
import vo.ArticuloVO;
import vo.TiendaVO;
import facade.AdministradorCD;
import framework.modelo.Businessdelegate;

public class BusinessdelegateCD extends Businessdelegate
{
	AdministradorCD administradorCD;

	public BusinessdelegateCD()
	{
		super();
		getConnection();
	}

	@SuppressWarnings("unchecked")
	void getConnection()
	{
		try
		{
			String naming="AdministradorCDApp/AdministradorCDBean/remote";
			Hashtable props = new Hashtable();
			props.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
			props.put(InitialContext.PROVIDER_URL,"jnp://127.0.0.1:1099");
			InitialContext ic = new InitialContext(props);
			administradorCD = (AdministradorCD) ic.lookup(naming);
			
			if(administradorCD!=null)
			{
				System.out.println("Se logro conectar al JBoss");
			}
		}
		catch (Exception e)
		{
			System.out.println("Error al conectarse al JBoss");
			e.printStackTrace();
		}
	}

	public ArticuloVO obtenerArticulo(int codigoArticulo)
	{
		System.out.println("Llega al Businessdelegate obtenerArticulo");
		return administradorCD.obtenerArticulo(codigoArticulo);
	}

	public void guardarArticulo(ArticuloVO articulovo)
	{
		System.out.println("Llega al Businessdelegate guardarArticulo");
		administradorCD.guardarArticulo(articulovo);
	}

	public void enviarSolicitud(ArticuloADespacharXML articuloadespachar)
	{
		System.out.println("Llega al Businessdelegate enviarSolicitud");
		administradorCD.enviarSolicitud(articuloadespachar);
	}

	@SuppressWarnings("unchecked")
	public Vector obtenerAEnviarYPendientes()
	{
		System.out.println("Llega al Businessdelegate obtenerAEnviarYPendientes");
		return administradorCD.obtenerAEnviarYPendientes();
	}

	@SuppressWarnings("unchecked")
	public Vector obtenerPendientesConTienda(TiendaVO tienda)
	{
		System.out.println("Llega al Businessdelegate obtenerPendientesConTienda");
		return administradorCD.obtenerPendientesConTienda(tienda);
	}

	@SuppressWarnings("unchecked")
	public Vector obtenerTiendas()
	{
		System.out.println("Llega al Businessdelegate obtenerTiendas");
		return administradorCD.obtenerTiendas();
	}

	public void registrarEnvioATienda()
	{
		System.out.println("Llega al Businessdelegate registrarEnvioATienda");
		administradorCD.registrarEnvioATienda();
	}

	@SuppressWarnings("unchecked")
	public Vector obtenerArticulos()
	{
		System.out.println("Llega al Businessdelegate obtenerArticulos");
		return administradorCD.obtenerArticulos();
	}

	@SuppressWarnings("unchecked")
	public Vector obtenerPendientesConArticulo(ArticuloVO articulo)
	{
		System.out.println("Llega al Businessdelegate obtenerPendientesConArticulo");
		return administradorCD.obtenerPendientesConArticulo(articulo);
	}

	public void registrarAPedirAFabrica()
	{
		System.out.println("Llega al Businessdelegate registrarAPedirAFabrica");
		administradorCD.registrarAPedirAFabrica();
	}

	public void enviarReposicion(ArticuloVO articulo)
	{
		System.out.println("Llega al Businessdelegate enviarReposicion");
		administradorCD.enviarReposicion(articulo);
	}
}
